<?php


namespace app\api\validate;


use app\common\service\ConfigService;
use app\common\validate\BaseValidate;

class RechargeValidate extends BaseValidate
{
    protected $rule = [
        'money' => 'require|float|gt:0|checkMoney',
        'pay_way' => 'require|checkRecharge',
    ];

    protected $message = [
        'money.require' => '请输入充值金额',
        'money.float' => '充值金额必须为浮点数',
        'money.gt' => '充值金额必须大于零',
        'pay_way.require' => '请选择支付方式',
    ];


    public function sceneRecharge()
    {
        return $this->only(['money','pay_way']);
    }


    /**
     * @notes 检验充值金额
     * @param $value
     * @param $rule
     * @param $data
     * @return bool|string
     * @author ljj
     * @date 2022/12/16 16:02
     */
    public function checkMoney($value,$rule,$data)
    {
        $min_amount = ConfigService::get('recharge', 'min_recharge_amount',0);
        if($value < $min_amount) {
            return '最低充值金额:'.$min_amount.'元';
        }

        return true;
    }


    /**
     * @notes 校验是否已开启充值功能
     * @param $value
     * @param $rule
     * @param $data
     * @return bool|string
     * @author ljj
     * @date 2022/12/16 16:02
     */
    public function checkRecharge($value,$rule,$data)
    {
        $result = ConfigService::get('recharge', 'recharge_open',1);
        if($result != 1) {
            return '充值功能已关闭';
        }

        return true;
    }
}